perm filename EX2.SAI[SAI,BGB] blob
sn#140812 filedate 1975-01-22 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 BEGIN "EXAMPLE TWO"
C00005 ENDMK
C⊗;
BEGIN "EXAMPLE TWO"
REQUIRE "ABBREV[SYS,BGB]" SOURCE_FILE;
REQUIRE "GEOMES.HDR[SAI,BGB]" SOURCE_FILE;
INTEGER I,B0,B1,C;
REAL X,Y,Z,U,V,W;
α SEQUENCE GENERATOR - S(X) = (137*X + 187)MOD 256 = (137*X - 69)MOD 256;
SAFE SIMPLE INTEGER PROCEDURE S(INTEGER X);
START_CODE
DEFINE P="'17";
MOVE 1,-1(P);IMULI 1,137;ADDI 1,187;
ANDI 1,'377;POP P,-1(P);POPJ P,;
END;
α INITIALIZE GEOMED & THE PROTOTYPE OBJECT;
MKUNIV;
C ← SON(SON(UNIVERSE)); α FETCH NOW CAMERA;
ROTATE(C,-π/3,π/2,0);
α B0 ← MKCUBE(8,8,8);
α GEOMED;
α SHOW2(0,0);
α PLOTO("X0");
α KLBFEV(B0);
B0 ← MKCUBE(.2,.2,.2);
α PLACE 256 OBJECTS INTO THE 8 FOOT CUBE OF SPACE IMMEDIATELY IN VIEW OF THE CAMERA;
U←30.49; V←-69.2; W←-43.25;
FOR I←0 THRU 255 DO
BEGIN
B1 ← (IF I=255 THEN B0 ELSE MKCOPY(B0));
X ← (I - 128)/32;
Y ← (S(I) - 128)/32;
Z ← (S(S(I)) - 128)/32;
IF (X-4)*U+(Y-4)*V+(Z+4)*W ≤ 0 THEN KLBFEV(B1) ELSE TRANSL(B1,X,Y,Z);
END;
α CREATE PLOT FILES OF THE OBJECTS VIEWED FROM VARIOUS CAMERA POSITIONS;
SHOW2(0,0);
PLOTO("X6");
END "EXAMPLE TWO";